import {config} from '../config.js'

// 定义错误码:
const tips={
  1:"抱歉，出现了一个错误",
  1005:'appkey失效',
  3000:'期刊不存在'
}

class HTTP {
  request({ url, data = {}, method = 'GET'}){
    return new Promise((resolve,reject)=>{
      this._request(url, resolve, reject, data , method)
    })
  }
  _request(url, resolve,reject,data={}, method='GET') {
    wx.request({
      url: config.api_url + url,
      method: method,
      data: data,
      header: {
        'content-type': 'application/json',
        'appkey': config.appkey
      },
      success:(res)=>{
        // statusCode是一个数字，只有字符串才能使用es6的startsWith方法
        const code=res.statusCode.toString();
        if (code.startsWith("2")){
          resolve(res.data)
        }else{
          reject()
          const error_code=res.error_code
          this._show_error(error_code)
        }
      },
      fail:(err)=>{
        reject()
       this._show_error(1)
      }
    })
  }
  
  // 加下划线标识这是一个私有方法(不要从外部调用)
  _show_error(err_code){
    if(!err_code){
      err_code=1
    }
    const tip=tip[error_code];
    wx.showToast({
      title: tip?tip:tips[1],
      icon:'none',
      duration:2000
    })
  }
}
export { HTTP}